#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QtSql>
#include<QDataWidgetMapper>
#include"qwcombboxdelegate.h"

QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    // 数据库连接
    QSqlDatabase m_dataBase;
    // 数据库数据模型
    QSqlTableModel* m_psqlTableModel;
    // 选择模型
    QItemSelectionModel* m_pSelection;
    // 数据映射
    QDataWidgetMapper* m_pdataMapper;
    // 自定义数据代理,性别
    QWCombBoxDelegate m_delegateSex;
    // 自定义数据代理,部门
    QWCombBoxDelegate m_delegateDepart;
    // 打开数据表
    void OpenTable();
    // 获取字段名称,填充“排序字段”的ComboBox
    void getFieldNames();
private slots:
    void on_actOpenDB_triggered();
    void on_actQuit_triggered();
    void on_actRecAppend_triggered();
    void on_actRecInsert_triggered();
    void on_actSubmit_triggered();
    void on_actRevert_triggered();
    void on_actRecDelete_triggered();
    void on_actPhoto_triggered();
    void on_actPotoClear_triggered();
    void on_actScan_triggered();
    // 自定义槽函数
    void On_currentChanged(const QModelIndex& current,const QModelIndex& previous);
    void On_currentRowChanged(const QModelIndex& current,const QModelIndex& previous);

    void on_radioBtnAscend_clicked();
    void on_radioBtnDesend_clicked();
    void on_cbSort_currentIndexChanged(int index);

    void on_radioButton_4_clicked();

    void on_radioButton_3_clicked();

    void on_radioButton_5_clicked();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
